home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 8 / Amoszine 8 (Disk 2 of 3).adf / Powerbobs.lha / powerbobsv1.0 / examples / powerbobs_shootemup.asc < prev    next >
Text File  |  1995-07-04  |  2KB  |  105 lines

  1. ' A SIMPLE SHOOT AND DODGE THE ASTEROIDS GAME
  2. ' CODED BY ANDY DOBINSON 
  3. '
  4. ' Adapted by PowerSoft.
  5. '
  6. Load "df0:examples/shootemup.abk"
  7. '
  8. Amos Lock 
  9. Screen Open 1,320,192,16,L
  10. Screen Close 0
  11. Flash Off : Curs Off : Cls 0 : Hide On 
  12. Get Sprite Palette 
  13. Unpack 10 To 1
  14. X=50 : Y=100
  15. SFIRE=False
  16. Dim X(10),Y(10),SPEED(10),IMAGE(10)
  17. For T=1 To 10
  18.    X(T)=320 : Y(T)=Rnd(150) : SPEED(T)=-(Rnd(4)+1) : IMAGE(T)=3
  19. Next T
  20. Double Buffer : Autoback 0 : Bob Update Off 
  21. Reserve Pbobs 12
  22. Pbob Dbuf True
  23. Make Mask 
  24. For T=1 To 12 : Pbob Height T,40 : Next T
  25. Wait 50
  26. Break Off : Multi No : E=Execall(-132)
  27. Repeat 
  28.    If Jup(1)
  29.       Add Y,-4
  30.    End If 
  31.    If Jdown(1)
  32.       Add Y,4
  33.    End If 
  34.    If Jright(1)
  35.       Add X,4
  36.    End If 
  37.    If Jleft(1)
  38.       Add X,-4
  39.    End If 
  40.    If Fire(1) and SFIRE=False
  41.       SFIRE=True
  42.       A=X : B=Y
  43.       Y1=B : Y2=B : X3=A
  44.    End If 
  45. '*** phew this is slow 
  46. '   For T=1 To 10
  47. '      Add X(T),-SPEED(T)
  48. '      If X(T)<0 Then X(T)=320 : Y(T)=Rnd(150) : SPEED(T)=-(Rnd(4)+1)
  49. '      Pbob T,X(T),Y(T),3
  50. '   Next T 
  51. '*** get some more speed hehe... 
  52.    Psum Varptr(X(0)),Varptr(SPEED(0)),1 To 10
  53.    For T=1 To 10
  54.       If X(T)<0
  55.          X(T)=320
  56.          Y(T)=Rnd(150)
  57.          SPEED(T)=-(Rnd(4)+1)
  58.       End If 
  59.    Next 
  60.    Pbob Varptr(X(1)),Varptr(Y(1)),Varptr(IMAGE(1)),1 To 10
  61.    If SFIRE
  62.       X1=A
  63.       X2=A
  64.       Y3=B
  65.       If X3<320
  66.          Add X3,6
  67.          Pbob 12,X3,Y3,2
  68.       Else 
  69.          X3=320
  70.          SFIRE=False
  71.          Pbob Off 12
  72.       End If 
  73.    End If 
  74.    Pbob 11,X,Y,1
  75.    _BLOCK_HIT=Pbob Fastcol(12,1 To 10)
  76.    If _BLOCK_HIT
  77.       _BOB=Pfast Bobcol(-1)
  78.       X(_BOB)=320
  79.       Y(_BOB)=Rnd(150)
  80.       SPEED(_BOB)=-(Rnd(4)+1)
  81.       Pbob _BOB,X(_BOB),Y(_BOB),3
  82.       SFIRE=False
  83.       Pbob Off 12
  84.    End If 
  85.    SHIP_HIT=Pbob Fastcol(11,1 To 10)
  86.    If SHIP_HIT
  87.       SHIP_SHAKE=True
  88.       SHAKER=0
  89.    End If 
  90.    If SHIP_SHAKE
  91.       Inc SHAKER
  92.       Pbob 11,X,Y+Rnd(9)-Rnd(7),1
  93.       If SHAKER=40
  94.          SHIP_SHAKE=False
  95.       End If 
  96.    End If 
  97.    Pbob Clear 1 To 12
  98.    Pbob Draw 1 To 12
  99.    Screen Swap 
  100.    Wait Vbl 
  101. Until Left Click
  102. Erase 1 : Erase 10
  103. Multi Yes : E=Execall(-138)
  104. Amos Unlock 
  105.